<?php
/**
 * Created by PhpStorm.
 * User: ownfi
 * Date: 2017-04-13
 * Time: 20:26
 */

namespace App\Services;

use App\Models\MasterCash;
use App\Models\MasterFund;

/**
 * 财务相关
 * Class IFinanceService
 * @package App\Services
 */
interface IFinanceService
{

    /**
     * 师傅流水列表
     * @return mixed
     */
    public function masterTradeList(array $wheres = []);

    /**
     * 商家流水列表
     * @return mixed
     */
    public function merchantTradeList(array $wheres = []);

    /**
     * 质保金流水列表
     * @return mixed
     */
    public function masterFundTradeList(array $wheres = []);

    /**
     * 质保金流水审核中列表
     * @return mixed
     */
    public function masterFundTradeReturningList(array $wheres = []);

    /**
     * 质保金流水已审核退还列表
     * @return mixed
     */
    public function masterFundTradeReturnedList(array $wheres = []);

    /**
     * 师傅提现审核
     * @return mixed
     */
    public function masterCashReviewList(array $wheres = []);

    /**
     * 师傅提现已审核
     * @return mixed
     */
    public function masterCashPassList(array $wheres = []);

    /**
     * 师傅提现已拒绝
     * @return mixed
     */
    public function masterCashRefuseList(array $wheres = []);

    /**
     * 拒绝提现
     * @param Request $request
     * @param IFinanceService $financeService
     */
    public function cashDisagree(MasterCash $cash);

    /**
     * 同意提现
     * @param Request $request
     * @param IFinanceService $financeService
     */
    public function cashAgree($cash_id);

    /**
     * 批量同意提现
     * @param Request $request
     * @param IFinanceService $financeService
     */
    public function cashAgreeMutil(array $cash_ids);

    /**
     * 拒绝退还质保金
     * @param Request $request
     * @param IFinanceService $financeService
     */
    public function returnFundDisagree(MasterFund $fund);

    /**
     * 同意退还质保金
     * @param Request $request
     * @param IFinanceService $financeService
     */
    public function returnFundAgree($fund_id);

    /**
     * 批量同意退还质保金
     * @param Request $request
     * @param IFinanceService $financeService
     */
    public function returnFundAgreeMutil(array $fund_ids);

    /**
     * 系统钱包记录
     * @return mixed
     */
    public function systemWalletHistory(array $wheres = []);

}